/**
 * 描述: 云函数接口服务
 * 版权: Copyright (c) 2019
 * 公司: 深圳市网商天下科技开发有限公司
 * 作者: 许堉颖
 * 版本: 1.0.0
 * 创建时间: 2019/5/7 10:21
 */
const db = wx.cloud.database();

/**
 * 云函数请求类
 */
const Cloud = {

  /**
   * 云函数请求方法
   * @param apiName 请求的api
   * @param params 参数对象
   */
  request: function(params, app=getApp()) {
    return new Promise(function(resolve, reject) {
      wx.showLoading({
        title: '加载中...',
        mask: true
      })
      // 发起请求
      wx.cloud.callFunction({
        // 云函数api
        name: 'api',
        // 参数
        data: params
      }).then(function(res) {
        console.log('========云函数请求成功========');
        console.log('api_name: '+ params['action']);
        console.log(res);
        // wx.hideLoading();
        // 云函数请求成功
        if (res['errMsg'] === 'cloud.callFunction:ok') {
          // 云函数操作成功
          if (res['result']['code'] === 0) {
            console.log('========云函数操作成功========');
            resolve(res['result']);
          } else {
            // 云函数操作失败
            console.log('========云函数操作失败========');
            console.log(res['result']);
            app.showConfirm('提示', res['result']['errMsg'], false);
          }
        } else {
          // 云函数请求失败
          console.log('========云函数请求失败========');
          console.log(res);
          app.showConfirm('提示', res['errMsg'], false);
        }
      }).catch(res => {
        // 异常
        console.log('========云函数执行异常========');
        console.log('api_name: ' + params['action']);
        console.log(res);
        wx.hideLoading();
        app.showConfirm('提示','请求异常,请下拉刷新\n' + res['errMsg'], false);
      })
    }).catch(res => {
      // 异常
      console.log('========云函数请求异常========');
      console.log('api_name: ' + params['action']);
      console.log(res.errMsg);
      wx.hideLoading();
      app.showConfirm('提示', res['errMsg'], false);
    })
  }
}

module.exports = {
  Cloud: Cloud
}